home *** CD-ROM | disk | FTP | other *** search
/ Tux Racer / Tux Racer.iso / program files / Sunspire Studios / Tux Racer / characters / tux / character.tcl < prev    next >
Encoding:
Text File  |  2001-07-12  |  2.1 KB  |  81 lines

  1. #
  2. # Create tux model with texture, models, objects, animations, etc.
  3. #
  4.  
  5. namespace eval TRCharacter_tux {
  6.     proc Load { plyr plyr_num course difficulty is_ai display_only } {
  7.     global tux_data_dir
  8.  
  9.     set character_name tux
  10.     set character_dir_name tux
  11.  
  12.     set base_characters ":characters"
  13.     if { $display_only } {
  14.         set base_characters ":display_characters"
  15.     }
  16.  
  17.     set shared_container_name "${character_name}-shared"
  18.     set shared_root "${base_characters}:$shared_container_name"
  19.     objcreate s_container $shared_root
  20.  
  21.     set container_name [objuniquename $base_characters $character_name]
  22.     objnew s_container $base_characters $container_name
  23.  
  24.     set curobj [objcur]
  25.     objsel "${base_characters}:$container_name"
  26.  
  27.     set curdir [pwd]
  28.     cd "$tux_data_dir/characters/$character_dir_name"
  29.  
  30.     # load tux_map texture
  31.     objcreate s_container $shared_root:textures
  32.     set character_texture_name $shared_root:textures:tux_map
  33.     objcreate s_texture $character_texture_name \
  34.         {-filename} {tuxmap.png} \
  35.         {-repeatable} {1}
  36.  
  37.     # Load bump decal texture
  38.     set character_bump_decal_name $shared_root:textures:tux_bump_decal
  39.     objcreate s_texture $character_bump_decal_name \
  40.         {-filename} tux_bump_decal.png \
  41.         {-repeatable} {1}
  42.  
  43.     # load bump map texture
  44.     set character_bump_name $shared_root:textures:tux_bump
  45.     objcreate s_texture_bump $character_bump_name \
  46.         {-scale} {5} {-filename} {tuxbump.png}
  47.     
  48.     source models.tcl
  49.     source objects.tcl
  50.  
  51.     if { $display_only } {
  52.         # Don't want collidables for display-only character so that they
  53.         # don't get inserted into octree
  54.         foreach child [objget objects children] {
  55.         objset $child -collidable_object null
  56.         }
  57.     }
  58.  
  59.     source anim.tcl
  60.     source sg.tcl
  61.     source actions.tcl
  62.  
  63.     if [objcall $plyr is_a s_ai_player] {
  64.         TRCharacter::LoadAITargets $plyr $plyr_num $course \
  65.             $difficulty $character_name
  66.     }
  67.  
  68.     # Setup preview camera
  69.     objset $plyr -preview_camera_pos { 0 0.73 1.3 } \
  70.         -preview_camera_dir { 0 -0.2 -1 }
  71.     
  72.  
  73.  
  74.     source player_setup.tcl
  75.  
  76.     # Restore current object and current working directory
  77.     objsel $curobj
  78.     cd $curdir
  79.     }
  80. }
  81.